import request from '@/config/axios'

// 代码生成导入字段定义 VO
export interface ImportColumnVO {
  id: number // 编号
  tableId: number // 表编号
  columnName: string // 字段名
  dataType: string // 字段类型
  columnComment: string // 字段描述
  nullable: boolean // 是否允许为空
  primaryKey: boolean // 是否主键
  note: string // 表头注解
  ordinalPosition: number // 排序
  javaType: string // Java 属性类型
  javaField: string // Java 属性名
  dictType: string // 字典类型
  functionName: string // 方法名称
  example: string // 数据示例
  htmlType: string // 显示类型
}

// 代码生成导入字段定义 API
export const ImportColumnApi = {
  // 查询代码生成导入字段定义分页
  getImportColumnPage: async (params: any) => {
    return await request.get({ url: `/infra/import-column/page`, params })
  },

  // 查询代码生成导入字段定义详情
  getImportColumn: async (id: number) => {
    return await request.get({ url: `/infra/import-column/get?id=` + id })
  },

  // 新增代码生成导入字段定义
  createImportColumn: async (data: ImportColumnVO) => {
    return await request.post({ url: `/infra/import-column/create`, data })
  },

  // 修改代码生成导入字段定义
  updateImportColumn: async (data: ImportColumnVO) => {
    return await request.put({ url: `/infra/import-column/update`, data })
  },

  // 删除代码生成导入字段定义
  deleteImportColumn: async (id: number) => {
    return await request.delete({ url: `/infra/import-column/delete?id=` + id })
  },

  // 导出代码生成导入字段定义 Excel
  exportImportColumn: async (params) => {
    return await request.download({ url: `/infra/import-column/export-excel`, params })
  },
}